GdkDrawContext *context = GDK_DRAW_CONTEXT (gobject);
GdkDrawContextPrivate *priv = gdk_draw_context_get_instance_private (context);
- g_clear_object (&priv->surface);
+ if (priv->surface)
+ {
+ priv->surface->draw_contexts = g_slist_remove (priv->surface->draw_contexts, context);
+ g_clear_object (&priv->surface);
+ }
G_OBJECT_CLASS (gdk_draw_context_parent_class)->dispose (gobject);
}
case PROP_SURFACE:
priv->surface = g_value_dup_object (value);
g_assert (priv->surface != NULL);
+ priv->surface->draw_contexts = g_slist_prepend (priv->surface->draw_contexts, context);
break;
default:
GdkFrameClock *frame_clock; /* NULL to use from parent or default */
+ GSList *draw_contexts;
GdkDrawingContext *drawing_context;
cairo_region_t *opaque_region;